'use strict';
import * as Koa from 'koa';
import { router, prefix } from '../middleware/router';
import { response } from '../middleware/result';
import { merchantService } from '../service/merchant';

/** 餐厅商户API对象 */
@prefix('merchant')
class MerchantController {
    /**
     * 
     * @api {post} /merchant/query  查询商户信息(PC)
     * @apiDescription 查询商户信息
     * @apiName query
     * @apiParam (参数) {String} offset   页码
     * @apiParam (参数) {String} limit    每页显示条数
     * @apiSampleRequest /merchant/query
     * @apiGroup merchant
     * @apiVersion 1.0.0
     */
    @router('/query', { method: 'post' })
    async query(ctx: Koa.Context) {
        let result = await merchantService.query(ctx.request.body);
        response(ctx, result);
    }
    /**
     * 
     * @api {post} /merchant/queryByPoint  查询商户列表默认按距离降序（默认返回10个）
     * @apiDescription 查询商户列表默认按距离降序（默认返回10个）
     * @apiName queryByPoint
     * @apiParam (参数) {number} lng    经度
     * @apiParam (参数) {number} lat    纬度
     * @apiParam (参数) {String} title  商户名称
     * @apiParam (参数) {String} cuisine  菜系
     * @apiParam (参数) {number} distance  距离km(如：5)
     * @apiParam (参数) {number} type    智能排序（null或空：全部；1：好评降序 ； 2：酒类齐全）
     * @apiParam (参数) {String} percapita  人均消费(范围值：如：<100，100-300， >500)
     * @apiParam (参数) {number} offset   页码(第一页为1，不传默认为第一页)
     * @apiParam (参数) {number} limit    每页条数（不传默认10条）
     * @apiSampleRequest /merchant/queryByPoint
     * @apiGroup merchant
     * @apiVersion 2.0.0
     */
    @router('/queryByPoint', { method: 'post' })
    async queryByPoint(ctx: Koa.Context) {
        let result = await merchantService.queryByPoint(ctx.request.body);
        response(ctx, result);
    }

    /**
    * 获取商户信息-菜品-评价
    * @api {post} /merchant/queryById 获取商户信息-菜品-评价
    * @apiDescription 获取商户信息-菜品-评价
    * @apiName queryById
    * @apiParam (参数) {String} mid  商户_id
    * @apiSampleRequest /merchant/queryById
    * @apiGroup merchant
    * @apiVersion 1.0.0
    */
    @router('/queryById', { method: 'post' })
    async queryById(ctx: Koa.Context) {
        let result = await merchantService.queryBId(ctx.request.body.mid);
        response(ctx, result);
    }

    @router('/queryall')
    async queryall(ctx: Koa.Context) {
        let result = await merchantService.queryall();
        response(ctx, result);
    }


    //商户获取名下的餐厅
    @router('/querybyuid', { method: 'post' })
    async querybyuid(ctx: Koa.Context) {
        let result = await merchantService.queryByUserId(ctx.request.body);
        response(ctx, result);
    }

    //商户修改名下的餐厅信息，
    @router('/merchantupdate', { method: 'post' })
    async merchantupdate(ctx: Koa.Context) {
        let result = await merchantService.queryByUserId(ctx.request.body);
        response(ctx, result);
    }


    //商户获取名下的餐厅
    @router('/queryone', { method: 'post' })
    async queryone(ctx: Koa.Context) {
        let result = await merchantService.queryone(ctx.request.body);
        response(ctx, result);
    }

    // 获取餐厅信息后台
    @router('/queryBymid/:mid')
    async queryBymid(ctx: Koa.Context) {
        let result = await merchantService.queryBymid(ctx.params.mid);
        response(ctx, result);
    }

      // 获取餐厅信息后台
      @router('/querybyagent', { method: 'post' })
      async  querybyagent(ctx: Koa.Context) {
          let result = await merchantService.querybyagent(ctx.request.body);
          response(ctx, result);
      }

    // 保存信息
    @router('/save', { method: 'post' })
    async save(ctx: Koa.Context) {
        await merchantService.save(ctx.request.body);
        response(ctx, '保存成功');
    }
    // 禁用餐厅
    @router('/lock/:id')
    async lock(ctx: Koa.Context) {
        await merchantService.lock(ctx.params.id);
        response(ctx, '禁用成功');
    }
    // 启用餐厅
    @router('/open/:id')
    async open(ctx: Koa.Context) {
        await merchantService.open(ctx.params.id);
        response(ctx, '启用成功');
    }

    @router('/queryweinmax')
    async queryweinmax(ctx: Koa.Context){
        let data= await merchantService.queryweinmax(ctx.query.mid);
        response(ctx, data);
    }
}